#-*- coding: utf-8 -*-
"""
documentacao do modulo
"""

class Cartao:
	'''
	documentacao da classe
	representaçao de cartoes
	'''
	#variavel de classe
	material='plastico'
	def __init__(self, numero='',nome=''):
		'''
		documentacao do construtor
		'''
		#variavel publica de instancia
		self.nome=nome
		
		#numero associado a cada cartao
		#representacao sob a forma de uma string
		#variavel privada de instancia
		self.setnumero(numero)
		pass
		
	#setters e getters
	def setnumero(self,numero):
		'''
		documentacao do metodo
		'''
		self.__numero=numero
	def getnumero(self):
		return self.__numero
		
	def __str__(self):
		return "Cartao: {0}".format(self.getnumero())
	pass
	
class CartaoNovoEstilo(object):
	'''
	documentacao da classe
	representacao de cartoes
	'''
	#varaivel de classe
	material = 'plastico'
	def __init__(self, numero= '',nome=''):
		'''
		documentacao do construtor
		'''
		#variavel publica de instancia
		self.nome = nome
		
		#numero associado a cada cartao
		#representado sob a forma de uma string
		#variavel privada de instancia
		self.setnumero(numero)
		pass
	
	#setters e getters
	def setnumero(self,numero):
		'''
		documentacao do metodo
		'''
		self.__numero = numero
	def getnumero(self):
		return self.__numero
		
	def __str__(self):
		return "Cartao: {0} " . format (self.getnumero())
	pass
	
def teste():
	#criacao de um objecto da classe cartao
	obj1 = Cartao('12345678')
	
	#criacao de segundo objecto da classe cartao
	obj2 = Cartao('87654321')
	
	#variaveis de classe e de instancia
	print Cartao.material
	
	print obj1.getnumero(), obj1.nome
	
	obj1.setnumero('12121212')
	obj1.nome = 'Maria chuhca'
	
	print obj1.getnumero(), obj1.nome
	pass
	
teste()
		
